package com.lant.utils;

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class NumberTool {

	private NumberTool() {
		super();
	}

	/**
	 * 获取格式化样式
	 *
	 * @param decimal 保留小数位数
	 * @return
	 */
	private static String getFormat(int decimal) {
		StringBuilder returnStr = new StringBuilder("0");

		if (decimal > 0) {
			returnStr.append(".");
		}

		for (int i = 0; i < decimal; i++) {
			returnStr.append("0");
		}

		return returnStr.toString();
	}

	/**
	 * 格式化小数
	 *
	 * @param value
	 * @param decimal
	 * @return
	 */
	public static String getFormat(double value, int decimal) {
		// 格式化，保留两位小数
		DecimalFormat df = new DecimalFormat(getFormat(decimal));

		BigDecimal b = BigDecimal.valueOf(value);

		return df.format(b);
	}

	/**
	 * 格式化小数
	 *
	 * @param value
	 * @param scale 精度
	 * @return
	 */
	public static String getFormat(BigDecimal value, int scale) {
		// 格式化，保留两位小数
		DecimalFormat df = new DecimalFormat(getFormat(scale));
		value = value == null ? BigDecimal.ZERO : value;
		return df.format(value);
	}

	/**
	 * 比较与0的大小
	 *
	 * @param value
	 * @return null: fasle, value>0:true else fasle
	 */
	public static boolean compareToZero(BigDecimal value) {
		if (value == null) {
			return false;
		}
		return value.compareTo(BigDecimal.ZERO) > 0;
	}

}
